package com.example.service;

import com.example.entity.Order;
import java.util.List;

/**
 * 订单服务接口
 */
public interface OrderService {

    /**
     * 根据用户ID获取订单列表
     * @param userId 用户ID
     * @return 订单列表
     * @throws IllegalArgumentException 如果用户ID无效
     */
    List<Order> getOrdersByUserId(Integer userId) throws IllegalArgumentException;

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrder(Integer orderId);

    /**
     * 创建新订单
     * @param order 订单对象
     * @return 是否创建成功
     * @throws IllegalArgumentException 如果订单缺少必要字段
     */
    boolean createOrder(Order order) throws IllegalArgumentException;

    /**
     * 更新订单状态
     * @param orderId 订单ID
     * @param status 新状态
     * @return 是否更新成功
     */
    boolean updateOrderStatus(Integer orderId, String status);

    Order getOrderById(Integer orderId);

    Order createOrderFromCart(String shopcartIds, Integer userid);
}